package example.json.msg;

import example.json.msg.impl.DahanExample;
import example.json.msg.service.MsgHttpClient;
import net.sf.json.JSONObject;
import org.apache.log4j.Logger;
import org.dom4j.*;
import java.util.Random;
import static example.json.msg.util.ErrorCodeUtil.*;

/**
 * 短信测试接口
 */
public interface MsgBaseService {

    Logger LOG = Logger.getLogger(DahanExample.class);

    /**
     * 单条群发
     */
    String batchSend(String accType, String phones, String content);

    /**
     * 多条群发
     */
    String mutipleSend(String accType, String content);

    /**
     * 语音短信
     */
    String voice(String accType, String phones, String content);

    /**
     * 状态报告
     */
    String report(String accType);

    /**
     * 上行短信响应
     */
    String sms(String accType);

    /**
     * 余额查询
     */
    String balance(String accType);

    /**
     * 获取国都 httpClient
     * @return 对象
     */
    default MsgHttpClient httpClient(String url){
        return httpClient(url ,1);
    }

    default MsgHttpClient httpClient(String url, int retryCount){
        try {
            return new MsgHttpClient(url, retryCount);
        } catch(Exception e) {
            return null;
        }
    }

    /**
     * 短信内容-验证码
     * @return 验证码短信内容
     */
    default String context() {
        return "您的验证码是:" + new Random().nextInt(999999) + "【签名】";
    }

    /************* 日志相关 ****************/
    default void info( String msg ){
        LOG.info(msg);
    }

    default void error( String msg ){
        LOG.error(msg);
    }

    default void error( String msg, Throwable ex ){
        LOG.error(msg, ex);
    }
}
